#ifndef CAMERA_H
#define	CAMERA_H

#include "Prerequisites.h"
#include "Vec2f.h"
#include "Vec3f.h"
#include "Quaternion.h"


class Camera
{
public:

    Camera();

    Camera(const Vector3f& Pos, const Quaternion& quat);

    bool OnKeyboard(int Key);

    bool OnSpecialKeyboard(int Key);

    void OnMouse(int x, int y);

    void OnRender();

    const Vector3f& getPosition() const;

    void move(const Vector3f& vec);

    void roll(const Radian& angle);

    void yaw(const Radian& angle);

    void pitch(const Radian& angle);

    void rotate(const Vector3f& axis, const Radian& angle);

    void rotate(const Quaternion& q);

private:

    Vector3f mPosition;//位置
    Quaternion mOrientation;//方向
};

#endif	/* CAMERA_H */

